LeetCode 389. Find the Difference

389.Find the Difference(找不同)

链接

https://leetcode-cn.com/problems/find-the-difference/

题目

给定两个字符串 st ,它们只包含小写字母。

字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。

请找出在 t 中被添加的字母。

示例:

  输入:
  s = "abcd"
  t = "abcde"

  输出:
  e

  解释:
  'e' 是那个被添加的字母。

思路

这题的方法挺多的,可以排序之后遍历查找,也可以哈希存储之后找到数值不同的存储位,最后还是选了统计字符串的int值的和,二者的差就是多的那个字母的int值,再次转换就行了。(此思路来自评论,真是大佬思路)

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static char findTheDifference(String s, String t) {
char ch1[] = s.toCharArray();
char ch2[] = t.toCharArray();
int sum = 0;
for (int i = 0; i < ch1.length; i++) {
sum = sum + (int) ch1[i];
}
for (int i = 0; i < ch2.length; i++) {
sum = sum - (int) ch2[i];
}
sum = Math.abs(sum);
char c = (char) sum;
return c;

}
---本文结束,感谢阅读---